package com.small.flowable.modules.app.dto.rsp;

import com.common.basis.oauth.AuUser;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.flowable.engine.history.HistoricDetail;

import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @ClassName: TaskRsp
 * @Author: huangrenhao
 * @Description:
 * @CreateTime： 2020/2/11 0011 下午 9:14
 * @Version：
 **/
@Data
@NoArgsConstructor
@Builder
@AllArgsConstructor
public class TaskRsp {

    /**
     * 任务ID
     **/
    private String taskId;

    /**
     * 任务名
     **/
    private String taskName;

    /**
     * 流程实例ID
     **/
    private String processInstanceId;

    /**
     * 节点标示
     */
    private String taskDefinitionKey;

    /**
     * 流程定义ID
     **/
    private String processDefinitionId;
    /**
     * 表单key
     */
    private String formKey;
    /**
     * 制定时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date dueDate;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date createTime;
    /**
     * 过程变量
     */
    private Map<String, Object> processVariables;
    /**
     * 任务局部变量
     */
    private Map<String, Object> taskLocalVariables;
    /**
     * 索赔时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date claimTime;
    /**
     * 夫ID
     */
    private String parentTaskId;
    /**
     * 租户ID
     */
    private String tenantId;
    /**
     * 执行ID
     */
    private String executionId;

    /**
     * 任务执行人集合
     **/
    private List<String> assignees = Collections.emptyList();
    /**
     * 范围编号
     */
    private String scopeId;

    /**
     * 子范围ID
     */
    private String subScopeId;

    /**
     * 范围类型
     */
    private String scopeType;
    /**
     * 候选人
     */
    private List<AuUser> originalCandidateUsers;
    /**
     * 候选组
     */
    private List<String> originalCandidateGroups;
    /**
     * 位置
     */
    private double x;
    /**
     * 位置
     */
    private double y;
    /**
     * 宽度
     */
    private double width;
    /**
     * 高度
     */
    private double height;
    /**
     * 表单参数
     */
    private List<HistoricDetail> fromList;
}
